package routes

import (
	controller "soma-server/controller/system"
	"soma-server/middleware"

	"github.com/gin-gonic/gin"
)

func InitRoleRoutes(r *gin.RouterGroup, authMiddleware *middleware.JWTMiddleware) gin.IRoutes {
	roleController := controller.NewRoleController()
	router := r.Group("/role")
	// 开启jwt认证中间件
	router.Use(authMiddleware.JWTAuthMiddleware())
	// 开启casbin鉴权中间件
	router.Use(middleware.CasbinMiddleware())
	{
		// 获取角色下拉列表
		router.GET("/options", roleController.GetRolesOptions)
		// 获取所有角色列表
		router.POST("/list", roleController.GetRoles)
		// 创建角色
		router.POST("/create", roleController.CreateRole)
		// 更新角色
		router.PUT("/update/:roleId", roleController.UpdateRoleById)
		// 获取角色的权限菜单
		router.GET("/menus/get/:roleId", roleController.GetRoleMenusById)
		// 更新角色的权限菜单
		router.PUT("/menus/update/:roleId", roleController.UpdateRoleMenusById)
		// 获取角色的权限接口
		router.GET("/apis/get/:roleId", roleController.GetRoleApisById)
		// 更新角色的权限接口
		router.PUT("/apis/update/:roleId", roleController.UpdateRoleApisById)
		// 删除角色
		router.DELETE("/delete/batch", roleController.BatchDeleteRoleByIds)
	}
	return r
}
